package com.dubbo.server.service.map;


import com.dubbo.server.vo.PageResult;
import com.dubbo.server.vo.QuanZiVo;
import com.tanhua.common.pojo.Comment;
import com.tanhua.common.pojo.PageInfo;
import com.tanhua.common.pojo.User;
import com.tanhua.common.pojo.VisitorsVo;

import java.util.List;

public interface QuanZiServiceMapp {

    /**
     * 查询好友动态
     * <p>
     * //  * @param  当前登录用户id
     *
     * @param page     当前页数
     * @param pageSize 每一页查询的数据条数
     * @return
     */
    public PageResult queryPublishList(Integer page, Integer pageSize, User user);


    /**
     * 发布动态
     *
     * @param
     * @return 发布成功返回动态id
     */
    String savePublish(User user, String textContent, String location, String latitude, String longitude, List<byte[]> papersBytes, List<String> filenameDocument);


    /**
     * 查询推荐动态动态
     *
     * @param page     当前页数
     * @param pageSize 每一页查询的数据条数
     */
    PageResult queryRecommendPublishList(User user, Integer page, Integer pageSize);


    /**
     * 用户点赞
     *
     * @param publishId
     * @return
     */
    Long likeComment(User user, String publishId);


    /**
     * 用户取消点赞
     *
     * @param publishId
     * @return
     */
    Long disLikeComment(User user, String publishId);


    /**
     * 用户喜欢
     *
     * @param publishId
     * @return
     */
    Long loveComment(User user, String publishId);


    /**
     * 用户不喜欢
     *
     * @param publishId
     * @return
     */
    Long disLoveComment(User user, String publishId);


    /**
     * 查询单条动态
     *
     * @param publishId
     * @return
     */
    QuanZiVo queryById(User user, String publishId);


    /**
     * 发表评论
     *
     * @param publishId
     * @return
     */
    Boolean saveComments(User user, String publishId, String content);


    /**
     * 查询评论列表
     *
     * @param publishId
     * @param page
     * @param pageSize
     * @return
     */
    PageResult queryCommentList(User user, String publishId, Integer page, Integer pageSize);


    /**
     * 查询对我的点赞消息列表
     *
     * @return
     */
    public PageInfo<Comment> queryLikeCommentListByUser(Long userId, Integer page, Integer pageSize);


    /**
     * 查询对我的喜欢消息列表
     *
     * @return
     */
    public PageInfo<Comment> queryLoveCommentListByUser(Long userId, Integer page, Integer pageSize);

    /**
     * 查询对我的评论消息列表
     *
     * @return
     */
    public PageInfo<Comment> queryCommentListByUser(Long userId, Integer page, Integer pageSize);


    /**
     * 自己所有的动态
     *
     * @return
     */
    PageResult queryAlbumList(User user, Long userId, Integer page, Integer pageSize);


    /**
     * 谁看过我
     *
     * @return
     */
    List<VisitorsVo> queryVisitorsList(User user);
}
